package com.zjsru.oneDay202210;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author: likew
 * @Date: 2022/10/5
 * 子域名访问计数
 *  输入：cpdomains = ["9001 discuss.leetcode.com"]
 * 输出：["9001 leetcode.com","9001 discuss.leetcode.com","9001 com"]
 * 解释：例子中仅包含一个网站域名："discuss.leetcode.com"。
 * 按照前文描述，子域名 "leetcode.com" 和 "com" 都会被访问，所以它们都被访问了 9001 次。
 *
 *
 */
public class SubdomainVisits {
    
    public List<String> subdomainVisits(String[] cpdomains) {
        Map<String, Integer> map = new HashMap<>();
        for (String s : cpdomains) {
            int n = s.length(), idx = 0;
            while (idx < n && s.charAt(idx) != ' ') {
                idx++;
            }
            int cnt = Integer.parseInt(s.substring(0, idx));
            int start = idx + 1;
            idx = n - 1;
            while (idx >= start) {
                while (idx >= start && s.charAt(idx) != '.') {
                    idx--;
                }
                String cur = s.substring(idx + 1);
                map.put(cur, map.getOrDefault(cur, 0) + cnt);
                idx--;
            }
        }
        List<String> ans = new ArrayList<>();
        for (String key : map.keySet()) {
            ans.add(map.get(key) + " " + key);
        }
        return ans;
    }
    
    public static void main(String[] args) {
        SubdomainVisits subdomainVisits = new SubdomainVisits();
        String[] cpdomains = new String[]{"9001 discuss.leetcode.com"};
        System.out.println(subdomainVisits.subdomainVisits(cpdomains));
    }
}
